#ifndef DATABANK_HPP_INCLUDED
#define DATABANK_HPP_INCLUDED

#include <map>
#include <string>
#include <vector>

#include <libtcod/libtcod.hpp>

#include "GameObject.hpp"

struct RaceData
{
	char Key;
	char Shape;
	EObjectSize Size;
	unsigned int Speed;
	unsigned int Sight;
	std::string Name;
	TCOD_dice_t HitDice;
	TCOD_dice_t UnarmedDice;
};

struct ItemData
{
	bool Transparent;
	char Shape;
	EObjectSize Size;
	std::string Name;
	std::vector<std::string> PossibleMaterials;
	TCODColor BackCol, ForeCol;
};

class Databank
{
public:
	static std::map<std::string, ItemData*> ItemBank;
	static std::map<unsigned int, RaceData> Race;

	static unsigned int getRaceByName(std::string name);
	
	static void clear();
	static void load();

private:
	static void LoadItems();
	static void LoadRaces();
};


#endif
